const Redis = require('ioredis');
const redis = new Redis(); // 这里可以传入Redis服务器地址和端口

// 存储验证码（例如，在登录请求发送验证码时）
function storeVerificationCode(userId, code, ttlInSeconds = 60) {
    // 使用userId作为key，验证码作为value，并设置过期时间
    return redis.set(`verificationCode:${userId}`, code, 'EX', ttlInSeconds);
}

// 验证验证码（例如，在用户提交登录表单时）
function verifyVerificationCode(userId, userInputCode) {
    return redis.get(`verificationCode:${userId}`).then(storedCode => {
        if (storedCode === userInputCode) {
            // 验证码正确，可以删除或保持验证码（取决于你的需求）
            // redis.del(`verificationCode:${userId}`); // 如果你需要立即删除
            return true;
        }
        // 验证码不正确
        return false;
    });
}

// 假设你已经有了userId和验证码code，现在存储它
// 这里的userId需要根据你的业务逻辑来确定，可能是一个用户ID，也可能是一个临时生成的token等
const userId = 'someUniqueId'; // 这应该是从请求或其他地方获取的
const code = '123456'; // 假设这是生成的验证码
storeVerificationCode(userId, code).then(() => {
    console.log('验证码已存储');
    // 这里可以发送验证码到用户的手机或邮箱等
}).catch(err => {
    console.error('存储验证码失败:', err);
});

// 在用户提交登录表单时验证验证码
// 这里的userId和userInputCode应该来自于用户提交的表单数据
verifyVerificationCode(userId, 'userInputtedCode').then(isCorrect => {
    if (isCorrect) {
        console.log('验证码正确');
        // 接下来可以进行登录操作等
    } else {
        console.log('验证码错误');
        // 处理验证码错误的情况
    }
}).catch(err => {
    console.error('验证验证码失败:', err);
});